<?php
/**
 * Autor:   Miguel A. Zilli
 * Email:   miguelzilli@gmail.com
 */

class LocalidadesController extends AppController{
    var $name='Localidades';
    var $uses=array('Localidad','Departamento','Provincia');
    var $helpers=array('Javascript','Ajax');
    var $paginate=array(
        'limit'=>'20',
        'order'=>array(
            'Localidad.nombre_loc'=>'ASC',
            'Departamento.nombre_dpto'=>'ASC'),
    );

    function beforeFilter(){
        parent::beforeFilter();
        $this->__checkAdmin();
    }

    function listar(){
        $condicion=array('Localidad.nombre_loc <>'=>'--NINGUNA--','Departamento.nombre_dpto <>'=>'--NINGUNO--');
        $localidades_tmp=$this->paginate('Localidad',$condicion);
        foreach ($localidades_tmp as $localidad){
            $localidades[]=$localidad+$this->Provincia->find('first',array(
                    'conditions'=>array('Provincia.id ='=>$localidad['Departamento']['provincia_id'])));
        }
        $this->set('localidades',$localidades);
    }

    function agregar(){
        if (!empty($this->data)){
            if($this->Localidad->save($this->data)){
                $this->Session->setFlash('Operacion realizada correctamente.');
                $this->redirect(array('action'=>'listar'),null,true);
            }else{
                $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            }
        }
        $this->set('provincias', $this->Provincia->find('list'));
        if(!empty($this->data['Departamento']['provincia_id'])){
            $this->set('departamentos',$this->Departamento->find('list',array(
                    'conditions'=>'Departamento.provincia_id='.$this->data['Departamento']['provincia_id'])));
        }
    }

    function editar($id=null){
        if(!empty($this->data)){
            if($this->Localidad->save($this->data)){
                $this->Session->setFlash('Operacion realizada correctamente.');
                $this->redirect(array('action'=>'listar'),null,true);
            }else{
                $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            }
        }
        if(empty($this->data)){
            $this->data=$this->Localidad->read(null,$id);
        }
        $this->set('provincias', $this->Provincia->find('list'));
        if(!empty($this->data['Departamento']['provincia_id'])){
            $this->set('departamentos',$this->Departamento->find('list',array(
                    'conditions'=>'Departamento.provincia_id='.$this->data['Departamento']['provincia_id'])));
        }
    }

    function eliminar($id=null){
        if($this->Localidad->del($id)){
            $this->Session->setFlash('Operacion realizada correctamente.');
            $this->redirect(array('action'=>'listar'),null,true);
        }else{
            $this->Session->setFlash('Error: No se pudo realizar la operacion.');
            $this->redirect(array('action'=>'listar'),null,true);
        }
    }

    function update_dpto(){
        if (!empty($this->data['Departamento']['provincia_id'])){
            $id_prov = $this->data['Departamento']['provincia_id'];
            $departamentos = $this->Departamento->find('list', array(
                    'conditions'=>array('Departamento.provincia_id'=>$id_prov)));
        }else{
            $departamentos = null;
        }
        $this->set('options', $departamentos);
        $this->render('/elements/update_select', 'ajax');
    }
}
?>